package com.ruoyi.consumer.controller.facilit.api;

import com.ruoyi.consumer.controller.facilit.fill.BigDataItem;
import com.ruoyi.consumer.controller.facilit.fill.FiaciltMode;
import com.ruoyi.consumer.controller.facilit.fill.FiaciltParameter;
import com.ruoyi.consumer.domain.order.PayOrderDTO;

import java.io.IOException;

public interface APIService {

    /**
     * 授权接口(获取token)
     *
     * @param appKey
     * @param appSecret
     * @return
     */
    String getAuthorization(String appKey, String appSecret);

    /**
     * 获取加注机详情信息
     *
     * @param sn
     * @param token
     * @return
     */
    String getEquipmentInfoBySn(String sn, String token) throws IOException;

    /**
     * 获取库位信息
     *
     * @param sn
     * @param token
     * @return
     */
    String getEquipmentStockBySn(String sn, String token) throws IOException;

    /**
     * 总订单查询接口
     *
     * @param orderId
     * @param token
     * @return
     */
    String findByOrderId(Long orderId, String token) throws IOException;


    /**
     * 小订单查询接口
     *
     * @param orderId
     * @param token
     * @return
     */
    String findOrderDetailByOrderId(Long orderId, String token) throws IOException;

    /**
     * 订单下单接口
     *
     * @param payOrderDTO
     * @return
     */
    String payOrder(PayOrderDTO payOrderDTO, String token);


    /**
     * 查询总订单查看当前订单是否家住完成
     *
     * @param bigDataItem
     * @return
     */
    Boolean isWorking(BigDataItem bigDataItem);

    /**
     * 查询加注机是否处于等待状态
     *
     * @param sn
     * @param token
     * @return
     */
    Boolean isWaiting(String sn, String token) throws IOException;


    /**
     * 设置加注机状态
     *
     * @param price  单价
     * @param sn     设备唯一标识sn
     * @param status 设备模式 0 : 锁机模式 1:无人模式 2:有人模式
     * @param kvs    流量系数
     * @param token
     */
    String setFaciltStatus(FiaciltParameter fiaciltParameter, String token);


    /**
     * 设置加注机模式
     *
     * @param sn     设备唯一标识sn
     * @param status 设备模式 0 : 锁机模式 1:无人模式 2:有人模式
     * @param token
     */
    String setFaciltMode(FiaciltMode fiaciltMode, String token);
}
